/**
 * 
 */
package vue.session;

import java.util.Set;

import model.session.SolverExecutionBlock;

/**
 * A {@link IGSolverBlock} is a block related to a solver execution in a session, it is somehow
 * related to {@link SolverExecutionBlock}.
 * 
 * @author GRONOWSKI Stephane svan001@aol.com
 * 
 *         igsat 2010
 * 
 */
public class IGSolverBlock extends IGBlock {

	protected SolverExecutionBlock	solver	= null;

	/**
	 * Create a {@link IGSolverBlock}.
	 * 
	 * @param solver
	 *            solver associate
	 */
	public IGSolverBlock(SolverExecutionBlock solver) {
		this.solver = solver;
	}

	/**
	 * Create a {@link IGSolverBlock}.
	 * 
	 * @param solver
	 *            solver associate
	 * @param listeners
	 *            set of {@link IIGModificationListener}
	 */
	public IGSolverBlock(SolverExecutionBlock solver, Set<IIGModificationListener> listeners) {
		super(listeners);

		this.solver = solver;
	}

	/**
	 * Return the {@link SolverExecutionBlock} associate.
	 * 
	 * @return the {@link SolverExecutionBlock} associate.
	 */
	public SolverExecutionBlock getSolver() {
		return solver;
	}

	/**
	 * Set the {@link SolverExecutionBlock} associate to the block.
	 * 
	 * @param solver
	 *            the solver to set
	 */
	public void setSolver(SolverExecutionBlock solver) {
		this.solver = solver;
	}
}
